

(function(module) {
    try {
        module = angular.module('frontend-templates');
    } catch (e) {
        module = angular.module('frontend-templates', []);
    }
    module.run(['$templateCache', function($templateCache) {
        $templateCache.put('/frontend/admin/loginHistory/index.html',
                           '\n' +
                           '<h3>\n' +
                           '    User login history ({{itemCount}})\n' +
                           '\n' +
                           '    <div class="col-xs-6 pull-right list-search">\n' +
                           '        <list-search\n' +
                           '            data-filters="filters"\n' +
                           '            data-options="itemsPerPageOptions"\n' +
                           '            data-items="itemsPerPage"\n' +
                           '        ></list-search>\n' +
                           '\n' +
                           '        <pagination class="pagination-sm"\n' +
                           '            data-total-items="itemCount"\n' +
                           '            data-ng-model="currentPage"\n' +
                           '            data-items-per-page="itemsPerPage"\n' +
                           '            data-max-size="10"\n' +
                           '            data-boundary-links="true"\n' +
                           '            data-rotate="false"\n' +
                           '        ></pagination>\n' +
                           '    </div>\n' +
                           '</h3>\n' +
                           '\n' +
                           '<table class="table">\n' +
                           '    <thead class="no-select">\n' +
                           '        <tr>\n' +
                           '            <th class="text-nowrap {{item.class}}"\n' +
                           '                data-ng-repeat="item in titleItems"\n' +
                           '            >\n' +
                           '                <a\n' +
                           '                    data-ng-show="item.column"\n' +
                           '                    data-ng-click="changeSort(item)"\n' +
                           '                    data-ng-bind-html="item.title"\n' +
                           '                ></a>\n' +
                           '                    <span\n' +
                           '                        data-ng-show="!item.column"\n' +
                           '                        data-ng-bind-html="item.title"\n' +
                           '                    ></span>\n' +
                           '\n' +
                           '                <i class="fa"\n' +
                           '                    data-ng-show="sort.column == item.column"\n' +
                           '                    data-ng-class="{\'fa-angle-down\': !sort.direction, \'fa-angle-up\': sort.direction}"\n' +
                           '                ></i>\n' +
                           '            </th>\n' +
                           '        </tr>\n' +
                           '    </thead>\n' +
                           '    <tbody>\n' +
                           '        <tr data-ng-repeat="item in items">\n' +
                           '            <td class="col-xs-2">\n' +
                           '                {{item.ip}}\n' +
                           '            </td>\n' +
                           '            <td class="col-xs-2">\n' +
                           '                {{item.browser}}\n' +
                           '            </td>\n' +
                           '            <td class="col-xs-2">\n' +
                           '                {{item.os}}\n' +
                           '            </td>\n' +
                           '            <td class="col-xs-2">\n' +
                           '                {{item.user.lastName}}, {{item.user.firstName}}\n' +
                           '\n' +
                           '                <span class="text-muted">\n' +
                           '                    ({{item.user.username}})\n' +
                           '                </span>\n' +
                           '            </td>\n' +
                           '            <td class="col-xs-4">\n' +
                           '                {{item.createdAt | amDateFormat : \'LLLL\'}},\n' +
                           '                <span data-am-time-ago="item.createdAt"></span>\n' +
                           '            </td>\n' +
                           '        </tr>\n' +
                           '\n' +
                           '        <tr data-ng-if="items.length === 0">\n' +
                           '            <td colspan="100%" class="text-center text-muted">\n' +
                           '                <em>no data founded...</em>\n' +
                           '            </td>\n' +
                           '        </tr>\n' +
                           '    </tbody>\n' +
                           '</table>\n' +
                           '\n' +
                           '<pagination class="pagination-sm pull-right"\n' +
                           '    data-total-items="itemCount"\n' +
                           '    data-ng-model="currentPage"\n' +
                           '    data-items-per-page="itemsPerPage"\n' +
                           '    data-max-size="10"\n' +
                           '    data-boundary-links="true"\n' +
                           '    data-rotate="false"\n' +
                           '></pagination>\n' +
                           '\n' +
                           '<div class="clearfix"></div>\n' +
                           '\n' +
                           '<div class="row">\n' +
                           '    <div class="col-xs-4">\n' +
                           '        <highchart id="statsBrowser" config="chartBrowser"></highchart>\n' +
                           '    </div>\n' +
                           '    <div class="col-xs-4">\n' +
                           '        <highchart id="statsOs" config="chartOs"></highchart>\n' +
                           '    </div>\n' +
                           '    <div class="col-xs-4">\n' +
                           '        <highchart id="statsUser" config="chartUser"></highchart>\n' +
                           '    </div>\n' +
                           '</div>');
    }]);
})();

(function(module) {
    try {
        module = angular.module('frontend-templates');
    } catch (e) {
        module = angular.module('frontend-templates', []);
    }
    module.run(['$templateCache', function($templateCache) {
        $templateCache.put('/frontend/examples/about/about.html',
                           '<h3>Sails.js + AngularJS <em>Boilerplate</em></h3>\n' +
                           '\n' +
                           '<div class="row">\n' +
                           '    <div class="col-sm-12">\n' +
                           '        <p>\n' +
                           '            This is an example <em>boilerplate</em> for your <em>Sails.js + AngularJS</em> combo project.\n' +
                           '            You can use this boilerplate as a starting point of your own awesome modern web application.\n' +
                           '            In addition there are many example to show you how to get started.\n' +
                           '        </p>\n' +
                           '\n' +
                           '        <h4>Main goals of this boilerplate</h4>\n' +
                           '        <ul>\n' +
                           '            <li>Totally separated back- and frontend development</li>\n' +
                           '            <li>Really light frontend application</li>\n' +
                           '            <li>Provide an example application of sails.js + angular to community</li>\n' +
                           '            <li>Secure authentication with backend</li>\n' +
                           '            <li>Power of AngularJS + WebSockets</li>\n' +
                           '            <li>Simple examples of how to use these</li>\n' +
                           '        </ul>\n' +
                           '\n' +
                           '        <p>\n' +
                           '            Below is detailed information about this <em>boilerplate</em>.\n' +
                           '        </p>\n' +
                           '    </div>\n' +
                           '    <div class="col-sm-12 col-md-4">\n' +
                           '        <h4>"Sides" of this boilerplate</h4>\n' +
                           '        <ul class="list-unstyled">\n' +
                           '            <li><strong>Backend</strong>\n' +
                           '                <ul>\n' +
                           '                    <li>\n' +
                           '                        Only <em>REST API</em>, no frontend stuff - really just an API, nothing else.\n' +
                           '                    </li>\n' +
                           '                    <li>\n' +
                           '                        Passport.js for user authentication.\n' +
                           '                        <span class="text-muted">\n' +
                           '                            Supported auth types: local,\n' +
                           '                            <del data-tooltip="These are not yet implemented...">\n' +
                           '                                twitter, facebook, google+, etc.\n' +
                           '                            </del>\n' +
                           '                        </span>\n' +
                           '                    </li>\n' +
                           '                    <li>\n' +
                           '                        JWT support for API calls.\n' +
                           '                        <span class="text-muted">\n' +
                           '                            JSON Web Tokens are used to to authenticate the user after a successfull login.\n' +
                           '                        </span>\n' +
                           '                    </li>\n' +
                           '                    <li>\n' +
                           '                        CORS support.\n' +
                           '                        <span class="text-muted">\n' +
                           '                            Really that is what we need to do when separating back- and frontend.\n' +
                           '                        </span>\n' +
                           '                    </li>\n' +
                           '                    <li>\n' +
                           '                        Real business logic and validations for data\n' +
                           '                        <span class="text-muted">\n' +
                           '                            Backend handles data related validations, logging, and user authentication.\n' +
                           '                        </span>\n' +
                           '                    </li>\n' +
                           '                </ul>\n' +
                           '            </li>\n' +
                           '            <li><strong>Frontend</strong>\n' +
                           '                <ul>\n' +
                           '                    <li>\n' +
                           '                        A single-page application\n' +
                           '                        <em class="text-muted">\n' +
                           '                            (also known as <strong>single-page interface or SPI</strong>) is a web application or web site that\n' +
                           '                            fits on a single web page with the goal of providing a more fluid user experience\n' +
                           '                            akin to a desktop application.\n' +
                           '                        </em>\n' +
                           '                    </li>\n' +
                           '                    <li>Lightweight only client side application</li>\n' +
                           '                    <li>Authentication to backend</li>\n' +
                           '                    <li>Route examples for views</li>\n' +
                           '                    <li>Support for WebSocket communication with backend</li>\n' +
                           '                    <li>Interceptor for HTTP / Socket communication</li>\n' +
                           '                </ul>\n' +
                           '            </li>\n' +
                           '        </ul>\n' +
                           '    </div>\n' +
                           '    <div class="col-sm-12 col-md-4">\n' +
                           '        <h4>Why do all this?</h4>\n' +
                           '        <ul class="list-unstyled">\n' +
                           '            <li>\n' +
                           '                This is <em>"the new way"</em> to build modern web applications. <em>Although there are different\n' +
                           '                opinions about this - of course</em>.\n' +
                           '            </li>\n' +
                           '            <li>\n' +
                           '                <strong>Main reasons</strong>\n' +
                           '                <ul>\n' +
                           '                    <li>\n' +
                           '                        I\'m interested in the architecture and structure of modern web applications\n' +
                           '                        - <em>and this is my opinion of it.</em>\n' +
                           '                    </li>\n' +
                           '                    <li>\n' +
                           '                        To help the community to do stuff like this. These kind of <em>full</em> examples dont exist.\n' +
                           '                    </li>\n' +
                           '                </ul>\n' +
                           '            </li>\n' +
                           '            <li>\n' +
                           '                <strong>Pros</strong>\n' +
                           '                <ul>\n' +
                           '                    <li>\n' +
                           '                        One language (javascript) to <em>rule</em> both sides.\n' +
                           '                        <span class="text-muted">\n' +
                           '                            Easier to code, you can use the same code on both sides (eg. validation rules).\n' +
                           '                        </span>\n' +
                           '                    </li>\n' +
                           '                    <li>\n' +
                           '                        Developers can focus on the "side" that is familiar.\n' +
                           '                        <span class="text-muted">\n' +
                           '                            This will make it easier for <em>new</em> people to work with your project.\n' +
                           '                        </span>\n' +
                           '                    </li>\n' +
                           '                    <li>\n' +
                           '                        Totally separated back- and frontend sides.\n' +
                           '                        <span class="text-muted">\n' +
                           '                            These are totally <em>separate</em> applications that communicate with each other\n' +
                           '                            via the specified API.\n' +
                           '                        </span>\n' +
                           '                    </li>\n' +
                           '                    <li>\n' +
                           '                        Easier deployments.\n' +
                           '                        <span class="text-muted">\n' +
                           '                            You can deployment back- and frontend applications at different times.\n' +
                           '                        </span>\n' +
                           '                    </li>\n' +
                           '                    <li>\n' +
                           '                        Ability to build <em>multiple</em> frontend applications for your backend.\n' +
                           '                        <span class="text-muted">\n' +
                           '                            You can use different frontend frameworks:\n' +
                           '                            <em>angular, ember, knockout, etc.</em>\n' +
                           '                        </span>\n' +
                           '                    </li>\n' +
                           '                    <li>\n' +
                           '                        Ability to <em>change</em> your backend.\n' +
                           '                        <span class="text-muted">\n' +
                           '                            If you get some <em>real-show-stopper</em> bugs / features / limitations with sails.js\n' +
                           '                            backend, you can change that to anything you like: <em>C#, PHP, Ruby, etc.</em> Just\n' +
                           '                            implement your API the same way - nothing else.\n' +
                           '                        </span>\n' +
                           '                    </li>\n' +
                           '                </ul>\n' +
                           '            </li>\n' +
                           '\n' +
                           '            <li>\n' +
                           '                <strong>Cons</strong>\n' +
                           '                <ul>\n' +
                           '                    <li>\n' +
                           '                        Complex structure of application.\n' +
                           '                        <span class="text-muted"></span>\n' +
                           '                    </li>\n' +
                           '                    <li>\n' +
                           '                        More expensive to maintain that traditional web application.\n' +
                           '                        <span class="text-muted">Basically at minimum two servers to run this.</span>\n' +
                           '                    </li>\n' +
                           '                    <li>\n' +
                           '                        API is the <em>thing</em> - so be very carefully when making changes.\n' +
                           '                        <span class="text-muted">\n' +
                           '                            It is easy to implement versioning to your API endpoints though.\n' +
                           '                        </span>\n' +
                           '                    </li>\n' +
                           '                </ul>\n' +
                           '            </li>\n' +
                           '        </ul>\n' +
                           '\n' +
                           '        <h4>Resources, guides, etc.</h4>\n' +
                           '        <ul>\n' +
                           '\n' +
                           '            <li>\n' +
                           '                <a href="http://lostechies.com/bradcarleton/2014/03/25/frontend-backend-gotta-keepem-separated/" target="_blank">Frontend & Backend: Gotta Keep’em Separated</a>\n' +
                           '            </li>\n' +
                           '            <li>\n' +
                           '                <a href="http://programmers.stackexchange.com/questions/107503/is-it-common-to-separate-back-end-and-front-end-into-two-positions-on-web-develo" target="_blank">Is it common to separate back-end and front-end into two positions on web development projects?</a>\n' +
                           '            </li>\n' +
                           '            <li>\n' +
                           '                <a href="http://stackoverflow.com/questions/23871853/concerns-about-separating-front-end-and-back-end-with-a-nodejs-ui-server" target="_blank">Concerns about separating front-end and back-end with a NodeJS UI server</a>\n' +
                           '            </li>\n' +
                           '            <li>\n' +
                           '                <a href="http://www.linkedin.com/groups/Is-development-industry-moving-separate-40949.S.5808929533427990532" target="_blank">Is the development industry moving to separate Back-end and Front-end developers?</a>\n' +
                           '            </li>\n' +
                           '            <li>\n' +
                           '                <a href="https://medium.com/opinionated-angularjs/techniques-for-authentication-in-angularjs-applications-7bbf0346acec" target="_blank">Techniques for authentication in AngularJS applications</a>\n' +
                           '            </li>\n' +
                           '            <li>\n' +
                           '                <a href="http://angular-tips.com/blog/2014/05/json-web-tokens-introduction/" target="_blank">Json Web Tokens: Introduction</a>\n' +
                           '            </li>\n' +
                           '            <li>\n' +
                           '                <a href="http://angular-tips.com/blog/2014/05/json-web-tokens-examples/" target="_blank">Json Web Tokens: Examples</a>\n' +
                           '            </li>\n' +
                           '        </ul>\n' +
                           '    </div>\n' +
                           '    <div class="col-sm-12 col-md-4">\n' +
                           '        <h4>Libraries used and other stuff</h4>\n' +
                           '        <ul class="list-unstyled">\n' +
                           '            <li>\n' +
                           '                <strong>Backend</strong>\n' +
                           '                <ul>\n' +
                           '                    <li>\n' +
                           '                        <a href="http://sailsjs.org/" target="_blank">sails.js</a>\n' +
                           '                        <span class="text-muted">\n' +
                           '                            Sails makes it easy to build custom, enterprise-grade Node.js apps.\n' +
                           '                            It is designed to emulate the familiar MVC pattern of frameworks like\n' +
                           '                            Ruby on Rails, but with support for the requirements of modern apps:\n' +
                           '                            data-driven APIs with a scalable, service-oriented architecture.\n' +
                           '                        </span>\n' +
                           '                    </li>\n' +
                           '                    <li>\n' +
                           '                        <a href="http://passportjs.org/" target="_blank">Passport</a>\n' +
                           '                        <span class="text-muted">\n' +
                           '                            Passport is authentication middleware for Node.js. Extremely flexible\n' +
                           '                            and modular, Passport can be unobtrusively dropped in to any Express-based\n' +
                           '                            web application. A comprehensive set of strategies support authentication\n' +
                           '                            using a username and password, Facebook, Twitter, and more.\n' +
                           '                        </span>\n' +
                           '                        <ul class="list-inline">\n' +
                           '                            <li>\n' +
                           '                                <a href="https://github.com/jaredhanson/passport-local" target="_blank">Local</a>\n' +
                           '                            </li>\n' +
                           '                            <li>\n' +
                           '                                <del data-tooltip="Not yet implemented...">\n' +
                           '                                    <a href="https://github.com/jaredhanson/passport-twitter" target="_blank">Twitter</a>\n' +
                           '                                </del>\n' +
                           '                            </li>\n' +
                           '                            <li>\n' +
                           '                                <del data-tooltip="Not yet implemented...">\n' +
                           '                                    <a href="https://github.com/jaredhanson/passport-github" target="_blank">GitHub</a>\n' +
                           '                                </del>\n' +
                           '                            </li>\n' +
                           '                            <li>\n' +
                           '                                <del data-tooltip="Not yet implemented...">\n' +
                           '                                    <a href="https://github.com/jaredhanson/passport-facebook" target="_blank">Facebook</a>\n' +
                           '                                </del>\n' +
                           '                            </li>\n' +
                           '                            <li>\n' +
                           '                                <del data-tooltip="Not yet implemented...">\n' +
                           '                                    <a href="https://github.com/jaredhanson/passport-google" target="_blank">Google</a>\n' +
                           '                                </del>\n' +
                           '                            </li>\n' +
                           '                        </ul>\n' +
                           '                    </li>\n' +
                           '                    <li>\n' +
                           '                        <a href="https://github.com/auth0/node-jsonwebtoken" target="_blank">JsonWebToken</a>\n' +
                           '                        <span class="text-muted">\n' +
                           '                            JSON Web Token implementation (symmetric and asymmetric)\n' +
                           '                        </span>\n' +
                           '                    </li>\n' +
                           '                    <li>\n' +
                           '                        <a href="https://github.com/bredikhin/barrels" target="_blank">barrels</a>\n' +
                           '                        <span class="text-muted">\n' +
                           '                            Simple DB Fixtures for Sails.js (^0.10.x)\n' +
                           '                        </span>\n' +
                           '                    </li>\n' +
                           '                    <li>\n' +
                           '                        <a href="https://github.com/tobie/ua-parser" target="_blank">ua-parser</a>\n' +
                           '                        <span class="text-muted">\n' +
                           '                            A multi-language port of Browserscope\'s user agent parser.\n' +
                           '                        </span>\n' +
                           '                    </li>\n' +
                           '                </ul>\n' +
                           '            </li>\n' +
                           '            <li>\n' +
                           '                <strong>Frontend</strong>\n' +
                           '                <ul>\n' +
                           '                    <li>\n' +
                           '                        <a href="https://github.com/slushjs/slush-angular" target="_blank">slush-angular</a>\n' +
                           '                        <span class="text-muted">\n' +
                           '                            A slush generator for AngularJS using the Google Angular App Structure Recommendations\n' +
                           '                        </span>\n' +
                           '                    </li>\n' +
                           '                    <li>\n' +
                           '                        <a href="http://jquery.com/" target="_blank">jQuery</a>\n' +
                           '                        <span class="text-muted">\n' +
                           '                            jQuery is a fast, small, and feature-rich JavaScript library.\n' +
                           '                        </span>\n' +
                           '                    </li>\n' +
                           '                    <li>\n' +
                           '                        <a href="http://getbootstrap.com/" target="_blank">Bootstrap</a>\n' +
                           '                        <span class="text-muted">\n' +
                           '                            Bootstrap is the most popular HTML, CSS, and JS framework for developing responsive,\n' +
                           '                            mobile first projects on the web.\n' +
                           '                        </span>\n' +
                           '                    </li>\n' +
                           '                    <li>\n' +
                           '                        <a href="http://fontawesome.io/" target="_blank">Font Awesome</a>\n' +
                           '                        <span class="text-muted">\n' +
                           '                            Font Awesome gives you scalable vector icons that can instantly be customized — size,\n' +
                           '                            color, drop shadow, and anything that can be done with the power of CSS.\n' +
                           '                        </span>\n' +
                           '                    </li>\n' +
                           '                    <li>\n' +
                           '                        <a href="https://angularjs.org/" target="_blank">AngularJS</a>\n' +
                           '                        <span class="text-muted">\n' +
                           '                            AngularJS lets you write client-side web applications as if you had a smarter browser.\n' +
                           '                            It lets you use good old HTML (or HAML, Jade and friends!) as your template language and\n' +
                           '                            lets you extend HTML’s syntax to express your application’s components clearly and succinctly.\n' +
                           '                        </span>\n' +
                           '                    </li>\n' +
                           '                    <li>\n' +
                           '                        <a href="https://github.com/angular-ui/ui-router" target="_blank">AngularUI Router</a>\n' +
                           '                        <span class="text-muted">\n' +
                           '                            The de-facto solution to flexible routing with nested views\n' +
                           '                        </span>\n' +
                           '                    </li>\n' +
                           '                    <li>\n' +
                           '                        <a href="http://angular-ui.github.io/bootstrap/" target="_blank">UI Bootstrap</a>\n' +
                           '                        <span class="text-muted">\n' +
                           '                            Bootstrap components written in pure AngularJS by the AngularUI Team\n' +
                           '                        </span>\n' +
                           '                    </li>\n' +
                           '                    <li>\n' +
                           '                        <a href="https://github.com/urish/angular-moment" target="_blank">angular-moment</a>\n' +
                           '                        <span class="text-muted">\n' +
                           '                            Moment.JS directives for Angular.JS (timeago and more)\n' +
                           '                        </span>\n' +
                           '                    </li>\n' +
                           '                    <li>\n' +
                           '                        <a href="https://github.com/paulyoder/angular-bootstrap-show-errors" target="_blank">angular-bootstrap-show-errors</a>\n' +
                           '                        <span class="text-muted">\n' +
                           '                            An Angular directive for Bootstrap to intelligently show form validation errors\n' +
                           '                        </span>\n' +
                           '                    </li>\n' +
                           '                    <li>\n' +
                           '                        <a href="https://github.com/scottcorgan/angular-linkify" target="_blank">angular-linkify</a>\n' +
                           '                        <span class="text-muted">\n' +
                           '                            Angular filter, directive, and service to linkify text.\n' +
                           '                        </span>\n' +
                           '                    </li>\n' +
                           '                    <li>\n' +
                           '                        <a href="http://foxandxss.github.io/angular-toastr/" target="_blank">angular-toastr</a>\n' +
                           '                        <span class="text-muted">\n' +
                           '                            Angular port of CodeSeven/toastr.\n' +
                           '                        </span>\n' +
                           '                    </li>\n' +
                           '                    <li>\n' +
                           '                        <a href="https://github.com/fraywing/textAngular" target="_blank">textAngular</a>\n' +
                           '                        <span class="text-muted">\n' +
                           '                            A radically powerful Text-Editor/Wysiwyg editor for Angular.js.\n' +
                           '                        </span>\n' +
                           '                    </li>\n' +
                           '                    <li>\n' +
                           '                        <a href="https://github.com/balderdashy/sails.io.js" target="_blank">sails.io.js</a>\n' +
                           '                        <span class="text-muted">\n' +
                           '                            Browser SDK for communicating w/ Sails via sockets\n' +
                           '                        </span>\n' +
                           '                    </li>\n' +
                           '                    <li>\n' +
                           '                        <a href="https://github.com/balderdashy/angularSails" target="_blank">angularSails</a>\n' +
                           '                        <span class="text-muted">\n' +
                           '                            AngularJS bindings for Sails.\n' +
                           '                        </span>\n' +
                           '                    </li>\n' +
                           '                </ul>\n' +
                           '            </li>\n' +
                           '            <li>\n' +
                           '                <strong>Common stuff</strong> <span class="text-muted">Libraries that are used on both sides</span>\n' +
                           '                <ul>\n' +
                           '                    <li>\n' +
                           '                        <a href="http://lodash.com/" target="_blank">Lo-Dash</a>\n' +
                           '                        <span class="text-muted">\n' +
                           '                            A utility library delivering consistency, customization, performance, & extras.\n' +
                           '                        </span>\n' +
                           '                    </li>\n' +
                           '                    <li>\n' +
                           '                        <a href="http://momentjs.com/" target="_blank">Moment.js</a>\n' +
                           '                        +\n' +
                           '                        <a href="http://momentjs.com/timezone/" target="_blank">Moment Timezone</a>\n' +
                           '                        <span class="text-muted">\n' +
                           '                            Parse, validate, manipulate, and display dates in javascript.\n' +
                           '                        </span>\n' +
                           '                    </li>\n' +
                           '                </ul>\n' +
                           '            </li>\n' +
                           '        </ul>\n' +
                           '    </div>\n' +
                           '</div>\n' +
                           '\n' +
                           '\n' +
                           '<p>\n' +
                           '    Use following credentials for login:\n' +
                           '    <pre>\n' +
                           'username: demo\n' +
                           'password: demodemodemo</pre>\n' +
                           '</p>\n' +
                           '\n' +
                           '<p>\n' +
                           '    Detailed info at <a href="https://github.com/tarlepp/angular-sailsjs-boilerplate" target="_blank">GitHub</a>.\n' +
                           '</p>');
    }]);
})();

(function(module) {
    try {
        module = angular.module('frontend-templates');
    } catch (e) {
        module = angular.module('frontend-templates', []);
    }
    module.run(['$templateCache', function($templateCache) {
        $templateCache.put('/frontend/examples/author/add.html',
                           '<form class="form-vertical" role="form" name="authorForm"\n' +
                           '    data-ng-submit="addAuthor()"\n' +
                           '>\n' +
                           '    <div class="row">\n' +
                           '        <div class="col-md-12">\n' +
                           '            <div class="form-group" style="margin-top: 10px;">\n' +
                           '                <input type="text" class="form-control" name="author.name" required="required" placeholder="Enter author name"\n' +
                           '                    data-ng-model="author.name"\n' +
                           '                />\n' +
                           '            </div>\n' +
                           '\n' +
                           '            <div class="form-group">\n' +
                           '                <textarea name="author.description" class="form-control editable-textarea" required="required" placeholder="Enter author description"\n' +
                           '                    data-ng-model="author.description"\n' +
                           '                >{book.description}</textarea>\n' +
                           '            </div>\n' +
                           '\n' +
                           '            <button type="submit" class="btn btn-primary"\n' +
                           '                data-ng-disabled="!authorForm.$valid"\n' +
                           '            >\n' +
                           '                Save\n' +
                           '            </button>\n' +
                           '        </div>\n' +
                           '    </div>\n' +
                           '</form>');
    }]);
})();

(function(module) {
    try {
        module = angular.module('frontend-templates');
    } catch (e) {
        module = angular.module('frontend-templates', []);
    }
    module.run(['$templateCache', function($templateCache) {
        $templateCache.put('/frontend/examples/author/author.html',
                           '<div data-ng-show="!author">\n' +
                           '    <h3>Requested author not found</h3>\n' +
                           '</div>\n' +
                           '\n' +
                           '<div data-ng-show="author">\n' +
                           '    <form class="form-vertical" role="form"\n' +
                           '        data-editable-form name="editableForm"\n' +
                           '        data-onaftersave="saveAuthor()"\n' +
                           '    >\n' +
                           '        <div class="row">\n' +
                           '            <div class="col-md-8">\n' +
                           '                <h3>\n' +
                           '                    <span style="width: 100%;"\n' +
                           '                        data-editable-text="author.name"\n' +
                           '                        data-e-name="author.name"\n' +
                           '                        data-e-required\n' +
                           '                    >\n' +
                           '                        {{author.name}}\n' +
                           '                    </span>\n' +
                           '\n' +
                           '                    <span class="pull-right"\n' +
                           '                        data-ng-show="!editableForm.$visible && user.admin"\n' +
                           '                    >\n' +
                           '                        <a href="#"\n' +
                           '                            data-ng-click="editableForm.$show()"\n' +
                           '                            data-tooltip="Toggle edit mode"\n' +
                           '                        >\n' +
                           '                            <i class="fa fa-wrench"></i>\n' +
                           '                        </a>\n' +
                           '                    </span>\n' +
                           '                </h3>\n' +
                           '\n' +
                           '                <p style="white-space: pre-line"\n' +
                           '                    data-editable-textarea="author.description"\n' +
                           '                    data-e-name="author.description"\n' +
                           '                    data-e-class="editable-textarea"\n' +
                           '                    data-e-required\n' +
                           '                >\n' +
                           '                    {{author.description}}\n' +
                           '                </p>\n' +
                           '\n' +
                           '                <div>\n' +
                           '                    <div data-ng-show="editableForm.$visible">\n' +
                           '                        <button type="submit" class="btn btn-primary"\n' +
                           '                            data-ng-disabled="editableForm.$waiting"\n' +
                           '                        >\n' +
                           '                            Save\n' +
                           '                        </button>\n' +
                           '                        <button type="button" class="btn btn-default"\n' +
                           '                            data-ng-disabled="editableForm.$waiting"\n' +
                           '                            data-ng-click="editableForm.$cancel()"\n' +
                           '                        >\n' +
                           '                            Cancel\n' +
                           '                        </button>\n' +
                           '                        <button type="button" class="btn btn-danger pull-right"\n' +
                           '                            data-ng-bootbox-title="Danger - Danger - Danger"\n' +
                           '                            data-ng-bootbox-custom-dialog="Are you sure about the <strong>{{author.name}}</strong> author delete?"\n' +
                           '                            data-ng-bootbox-buttons="confirmButtonsDelete"\n' +
                           '                        >\n' +
                           '                            Delete\n' +
                           '                        </button>\n' +
                           '                    </div>\n' +
                           '                </div>\n' +
                           '            </div>\n' +
                           '\n' +
                           '            <div class="col-md-4">\n' +
                           '                <h4>Books ({{booksCount}})</h4>\n' +
                           '                <table class="table table-condensed table-hover">\n' +
                           '                    <thead>\n' +
                           '                        <tr>\n' +
                           '                            <th class="col-xs-11">\n' +
                           '                                Title\n' +
                           '                            </th>\n' +
                           '                            <th class="col-xs-1 text-nowrap">\n' +
                           '                                Release year\n' +
                           '                            </th>\n' +
                           '                        </tr>\n' +
                           '                    </thead>\n' +
                           '                    <tbody>\n' +
                           '                        <tr data-ng-repeat="book in books">\n' +
                           '                            <td>\n' +
                           '                                <a data-ui-sref="examples.book({id: book.id})">{{book.title}}</a>\n' +
                           '                            </td>\n' +
                           '                            <td class="text-right">\n' +
                           '                                {{book.releaseDate | amDateFormat: \'YYYY\'}}\n' +
                           '                            </td>\n' +
                           '                        </tr>\n' +
                           '                    </tbody>\n' +
                           '                </table>\n' +
                           '            </div>\n' +
                           '        </div>\n' +
                           '    </form>\n' +
                           '</div>');
    }]);
})();

(function(module) {
    try {
        module = angular.module('frontend-templates');
    } catch (e) {
        module = angular.module('frontend-templates', []);
    }
    module.run(['$templateCache', function($templateCache) {
        $templateCache.put('/frontend/examples/author/list-info.html',
                           '<h4>General info</h4>\n' +
                           '\n' +
                           '<p>\n' +
                           '    This page demonstrates fetching data from the backend via WebSockets and showing it in a simple list.\n' +
                           '    This example application fetches <em>authors</em> with related <em>book</em> data populated for each\n' +
                           '    and also covers data pagination, sort, and search functions. The actual data is fetched from the\n' +
                           '    following endpoint on the backend.\n' +
                           '</p>\n' +
                           '\n' +
                           '<pre>GET {{backendConfig.url}}/author <a ng-href="{{backendConfig.url}}/author" target="_blank" data-tooltip="Open endpoint url"><i class="fa fa-external-link"></i></a></pre>\n' +
                           '\n' +
                           '<p>\n' +
                           '    Note that all data communication to the backend requires a JSON Web Token (<em>JWT</em>)\n' +
                           '    for authentication to make sure that user is allowed to access the data.\n' +
                           '</p>\n' +
                           '\n' +
                           '<h4>Functions in this example</h4>\n' +
                           '\n' +
                           '<dl class="dl-horizontal">\n' +
                           '    <dt>\n' +
                           '        Data fetch\n' +
                           '    </dt>\n' +
                           '    <dd>\n' +
                           '        From backend via WebSockets using <em>$sailsSocket</em> service.\n' +
                           '    </dd>\n' +
                           '\n' +
                           '    <dt>\n' +
                           '        Search\n' +
                           '    </dt>\n' +
                           '    <dd>\n' +
                           '        Specify which columns are used in search and type your search words to see results while you\'re typing.\n' +
                           '    </dd>\n' +
                           '\n' +
                           '    <dt>\n' +
                           '        Pagination\n' +
                           '    </dt>\n' +
                           '    <dd>\n' +
                           '        By default, the page displays an example of ten books per page. You can change the number to be\n' +
                           '        displayed per page.\n' +
                           '    </dd>\n' +
                           '\n' +
                           '    <dt>\n' +
                           '        Sorting data\n' +
                           '    </dt>\n' +
                           '    <dd>\n' +
                           '        Simply by clicking the column header. This will fetch data from backend again. <em>Unfortunately not from\n' +
                           '        relation columns... yet.</em>\n' +
                           '    </dd>\n' +
                           '\n' +
                           '    <dt>\n' +
                           '        Live updates\n' +
                           '    </dt>\n' +
                           '    <dd>\n' +
                           '        GUI is automatically updated if changes are made to the data.\n' +
                           '    </dd>\n' +
                           '\n' +
                           '    <dt>\n' +
                           '        Navigation\n' +
                           '    </dt>\n' +
                           '    <dd>\n' +
                           '        Access to a single author and book pages simply by clicking the author or book name.\n' +
                           '    </dd>\n' +
                           '</dl>\n' +
                           '\n' +
                           '<page-info-files data-files="{{files}}"></page-info-files>\n' +
                           '');
    }]);
})();

(function(module) {
    try {
        module = angular.module('frontend-templates');
    } catch (e) {
        module = angular.module('frontend-templates', []);
    }
    module.run(['$templateCache', function($templateCache) {
        $templateCache.put('/frontend/examples/author/list.html',
                           '<h3>\n' +
                           '    Authors ({{itemCount}})\n' +
                           '\n' +
                           '    <div class="col-xs-6 pull-right list-search">\n' +
                           '        <a\n' +
                           '            data-ng-if="user.admin"\n' +
                           '            data-ui-sref="examples.author.add"\n' +
                           '            data-tooltip="Add new author"\n' +
                           '        ><i class="fa fa-plus-circle"></i></a>\n' +
                           '\n' +
                           '        <list-search\n' +
                           '            data-filters="filters"\n' +
                           '            data-options="itemsPerPageOptions"\n' +
                           '            data-items="itemsPerPage"\n' +
                           '        ></list-search>\n' +
                           '\n' +
                           '        <pagination class="pagination-sm"\n' +
                           '            data-total-items="itemCount"\n' +
                           '            data-ng-model="currentPage"\n' +
                           '            data-items-per-page="itemsPerPage"\n' +
                           '            data-max-size="10"\n' +
                           '            data-boundary-links="true"\n' +
                           '            data-rotate="false"\n' +
                           '        ></pagination>\n' +
                           '    </div>\n' +
                           '</h3>\n' +
                           '\n' +
                           '<table class="table">\n' +
                           '    <thead class="no-select">\n' +
                           '    <tr>\n' +
                           '        <th class="text-nowrap {{item.class}}"\n' +
                           '            data-ng-repeat="item in titleItems | filter:titleFilter"\n' +
                           '        >\n' +
                           '            <a\n' +
                           '                data-ng-show="item.column"\n' +
                           '                data-ng-click="changeSort(item)"\n' +
                           '                data-ng-bind-html="item.title"\n' +
                           '            ></a>\n' +
                           '            <span\n' +
                           '                data-ng-show="!item.column"\n' +
                           '                data-ng-bind-html="item.title"\n' +
                           '            ></span>\n' +
                           '\n' +
                           '            <i class="fa"\n' +
                           '                data-ng-show="sort.column == item.column"\n' +
                           '                data-ng-class="{\'fa-angle-down\': !sort.direction, \'fa-angle-up\': sort.direction}"\n' +
                           '            ></i>\n' +
                           '        </th>\n' +
                           '    </tr>\n' +
                           '    </thead>\n' +
                           '    <tbody>\n' +
                           '        <tr data-ng-repeat="author in items">\n' +
                           '            <td class="col-md-11">\n' +
                           '                <a data-ui-sref="examples.author({id: author.id})">{{author.name}}</a>\n' +
                           '            </td>\n' +
                           '            <td class="col-md-1 text-right">{{author.books.length}}</td>\n' +
                           '        </tr>\n' +
                           '\n' +
                           '        <tr data-ng-if="items.length === 0">\n' +
                           '            <td colspan="100%" class="text-center text-muted">\n' +
                           '                <em>no data found...</em>\n' +
                           '            </td>\n' +
                           '        </tr>\n' +
                           '    </tbody>\n' +
                           '</table>\n' +
                           '\n' +
                           '<pagination class="pagination-sm pull-right"\n' +
                           '    data-total-items="itemCount"\n' +
                           '    data-ng-model="currentPage"\n' +
                           '    data-items-per-page="itemsPerPage"\n' +
                           '    data-max-size="10"\n' +
                           '    data-boundary-links="true"\n' +
                           '    data-rotate="false"\n' +
                           '></pagination>\n' +
                           '');
    }]);
})();

(function(module) {
    try {
        module = angular.module('frontend-templates');
    } catch (e) {
        module = angular.module('frontend-templates', []);
    }
    module.run(['$templateCache', function($templateCache) {
        $templateCache.put('/frontend/examples/book/add.html',
                           '<form class="form-vertical" role="form" name="bookForm"\n' +
                           '    data-ng-submit="addBook()"\n' +
                           '>\n' +
                           '    <div class="row">\n' +
                           '        <div class="col-lg-8">\n' +
                           '            <div class="form-group" style="margin-top: 10px;">\n' +
                           '                <input type="text" class="form-control" required="required" name="title" placeholder="Enter book title"\n' +
                           '                    data-ng-model="book.title"\n' +
                           '                />\n' +
                           '            </div>\n' +
                           '\n' +
                           '            <div class="form-group">\n' +
                           '                <textarea name="book.description" class="form-control editable-textarea" required="required" placeholder="Enter book description"\n' +
                           '                    data-ng-model="book.description"\n' +
                           '                >{book.description}</textarea>\n' +
                           '            </div>\n' +
                           '\n' +
                           '            <div class="visible-lg">\n' +
                           '                <button type="submit" class="btn btn-primary"\n' +
                           '                    data-ng-disabled="!bookForm.$valid"\n' +
                           '                >\n' +
                           '                    Save\n' +
                           '                </button>\n' +
                           '            </div>\n' +
                           '        </div>\n' +
                           '\n' +
                           '        <div class="col-lg-4">\n' +
                           '            <h4 class="text-muted">Information</h4>\n' +
                           '            <table class="table">\n' +
                           '                <tr>\n' +
                           '                    <th style="vertical-align: middle;">Author</th>\n' +
                           '                    <td>\n' +
                           '                        <select name="author" class="form-control" required="required"\n' +
                           '                            data-ng-model="book.author"\n' +
                           '                            data-ng-options="author.id as author.name for author in authors"\n' +
                           '                        >\n' +
                           '                            <option value="">Select an author</option>\n' +
                           '                        </select>\n' +
                           '                    </td>\n' +
                           '                </tr>\n' +
                           '                <tr>\n' +
                           '                    <th>Released</th>\n' +
                           '                    <td>\n' +
                           '                        <datepicker\n' +
                           '                            data-ng-model="book.releaseDate"\n' +
                           '                            data-min-mode="year"\n' +
                           '                            data-datepicker-mode="\'year\'"\n' +
                           '                        ></datepicker>\n' +
                           '                    </td>\n' +
                           '                </tr>\n' +
                           '            </table>\n' +
                           '\n' +
                           '            <div class="hidden-lg">\n' +
                           '                <button type="submit" class="btn btn-primary"\n' +
                           '                    data-ng-disabled="!bookForm.$valid"\n' +
                           '                >\n' +
                           '                    Save\n' +
                           '                </button>\n' +
                           '            </div>\n' +
                           '        </div>\n' +
                           '    </div>\n' +
                           '</form>');
    }]);
})();

(function(module) {
    try {
        module = angular.module('frontend-templates');
    } catch (e) {
        module = angular.module('frontend-templates', []);
    }
    module.run(['$templateCache', function($templateCache) {
        $templateCache.put('/frontend/examples/book/book.html',
                           '<div data-ng-show="!book">\n' +
                           '    <h3>Requested book not found</h3>\n' +
                           '</div>\n' +
                           '\n' +
                           '<div data-ng-show="book">\n' +
                           '    <form class="form-vertical" role="form"\n' +
                           '        data-editable-form name="editableForm"\n' +
                           '        data-onaftersave="saveBook()"\n' +
                           '    >\n' +
                           '        <div class="row">\n' +
                           '            <div class="col-lg-8">\n' +
                           '                <h3>\n' +
                           '                    <span style="width: 100%;"\n' +
                           '                        data-editable-text="book.title"\n' +
                           '                        data-e-name="book.title"\n' +
                           '                        data-e-required\n' +
                           '                    >\n' +
                           '                        {{book.title}}\n' +
                           '                    </span>\n' +
                           '\n' +
                           '                    <span class="pull-right"\n' +
                           '                        data-ng-show="!editableForm.$visible && user.admin"\n' +
                           '                    >\n' +
                           '                        <a href="#"\n' +
                           '                           data-ng-click="editableForm.$show()"\n' +
                           '                           data-tooltip="Toggle edit mode"\n' +
                           '                        >\n' +
                           '                            <i class="fa fa-wrench"></i>\n' +
                           '                        </a>\n' +
                           '                    </span>\n' +
                           '                </h3>\n' +
                           '\n' +
                           '                <p style="white-space: pre-line"\n' +
                           '                   data-editable-textarea="book.description"\n' +
                           '                   data-e-name="book.description"\n' +
                           '                   data-e-class="editable-textarea"\n' +
                           '                   data-e-required\n' +
                           '                >\n' +
                           '                    {{book.description}}\n' +
                           '                </p>\n' +
                           '\n' +
                           '                <div class="visible-lg">\n' +
                           '                    <div data-ng-show="editableForm.$visible">\n' +
                           '                        <button type="submit" class="btn btn-primary"\n' +
                           '                            data-ng-disabled="editableForm.$waiting"\n' +
                           '                        >\n' +
                           '                            Save\n' +
                           '                        </button>\n' +
                           '                        <button type="button" class="btn btn-default"\n' +
                           '                            data-ng-disabled="editableForm.$waiting"\n' +
                           '                            data-ng-click="editableForm.$cancel()"\n' +
                           '                        >\n' +
                           '                            Cancel\n' +
                           '                        </button>\n' +
                           '                        <button type="button" class="btn btn-danger pull-right"\n' +
                           '                            data-ng-bootbox-title="Danger - Danger - Danger"\n' +
                           '                            data-ng-bootbox-custom-dialog="Are you sure about the <strong>{{book.title}}</strong> book delete?"\n' +
                           '                            data-ng-bootbox-buttons="confirmButtonsDelete"\n' +
                           '                        >\n' +
                           '                            Delete\n' +
                           '                        </button>\n' +
                           '                    </div>\n' +
                           '                </div>\n' +
                           '            </div>\n' +
                           '\n' +
                           '            <div class="col-lg-4">\n' +
                           '                <h4 class="text-muted">Information</h4>\n' +
                           '                <table class="table">\n' +
                           '                    <tr>\n' +
                           '                        <th style="vertical-align: middle;">Author</th>\n' +
                           '                        <td>\n' +
                           '                            <a\n' +
                           '                                data-ui-sref="examples.author({id: book.author.id})"\n' +
                           '                                data-editable-select="selectAuthor"\n' +
                           '                                data-onshow="loadAuthors()"\n' +
                           '                                data-e-name="book.author"\n' +
                           '                                data-e-required\n' +
                           '                                data-e-ng-options="a.id as a.name for a in authors"\n' +
                           '                            >\n' +
                           '                                {{book.author.name}}\n' +
                           '                            </a>\n' +
                           '                        </td>\n' +
                           '                    </tr>\n' +
                           '                    <tr>\n' +
                           '                        <th>Released</th>\n' +
                           '                        <td>\n' +
                           '                            <div data-ng-show="!editableForm.$visible">\n' +
                           '                                {{book.releaseDate | amDateFormat: \'YYYY\'}}\n' +
                           '                            </div>\n' +
                           '\n' +
                           '                            <div data-ng-show="editableForm.$visible">\n' +
                           '                                <datepicker\n' +
                           '                                    data-ng-model="book.releaseDate"\n' +
                           '                                    data-min-mode="year"\n' +
                           '                                    data-datepicker-mode="\'year\'"\n' +
                           '                                ></datepicker>\n' +
                           '                            </div>\n' +
                           '                        </td>\n' +
                           '                    </tr>\n' +
                           '                </table>\n' +
                           '\n' +
                           '                <div class="hidden-lg">\n' +
                           '                    <div data-ng-show="editableForm.$visible">\n' +
                           '                        <button type="submit" class="btn btn-primary"\n' +
                           '                            data-ng-disabled="editableForm.$waiting"\n' +
                           '                        >\n' +
                           '                            Save\n' +
                           '                        </button>\n' +
                           '                        <button type="button" class="btn btn-default"\n' +
                           '                            data-ng-disabled="editableForm.$waiting"\n' +
                           '                            data-ng-click="editableForm.$cancel()"\n' +
                           '                        >\n' +
                           '                            Cancel\n' +
                           '                        </button>\n' +
                           '                        <button type="button" class="btn btn-danger pull-right"\n' +
                           '                            data-ng-bootbox-confirm="Are you sure about the book delete?"\n' +
                           '                            data-ng-bootbox-confirm-action="deleteBook()"\n' +
                           '                        >\n' +
                           '                            Delete\n' +
                           '                        </button>\n' +
                           '                    </div>\n' +
                           '                </div>\n' +
                           '            </div>\n' +
                           '        </div>\n' +
                           '    </form>\n' +
                           '</div>');
    }]);
})();

(function(module) {
    try {
        module = angular.module('frontend-templates');
    } catch (e) {
        module = angular.module('frontend-templates', []);
    }
    module.run(['$templateCache', function($templateCache) {
        $templateCache.put('/frontend/examples/book/list-info.html',
                           '<h4>General info</h4>\n' +
                           '\n' +
                           '<p>\n' +
                           '    This page demonstrates fetching data from the backend via WebSockets and showing it in a simple list.\n' +
                           '    This example application fetches <em>books</em> with related <em>author</em> data populated for each\n' +
                           '    and also covers data pagination, sort, and search functions. The actual data is fetched from the\n' +
                           '    following endpoint on the backend.\n' +
                           '</p>\n' +
                           '\n' +
                           '<pre>GET {{backendConfig.url}}/book <a ng-href="{{backendConfig.url}}/book" target="_blank" data-tooltip="Open endpoint url"><i class="fa fa-external-link"></i></a></pre>\n' +
                           '\n' +
                           '<p>\n' +
                           '    Note that all data communication to the backend requires a JSON Web Token (<em>JWT</em>)\n' +
                           '    for authentication to make sure that user is allowed to access the data.\n' +
                           '</p>\n' +
                           '\n' +
                           '<h4>Functions in this example</h4>\n' +
                           '\n' +
                           '<dl class="dl-horizontal">\n' +
                           '    <dt>\n' +
                           '        Data fetch\n' +
                           '    </dt>\n' +
                           '    <dd>\n' +
                           '        From backend via WebSockets using <em>$sailsSocket</em> service.\n' +
                           '    </dd>\n' +
                           '\n' +
                           '    <dt>\n' +
                           '        Search\n' +
                           '    </dt>\n' +
                           '    <dd>\n' +
                           '        Specify which columns are used in search and type your search words to see results while you\'re typing.\n' +
                           '    </dd>\n' +
                           '\n' +
                           '    <dt>\n' +
                           '        Pagination\n' +
                           '    </dt>\n' +
                           '    <dd>\n' +
                           '        By default, the page displays an example of ten books per page. You can change the number to be\n' +
                           '        displayed per page.\n' +
                           '    </dd>\n' +
                           '\n' +
                           '    <dt>\n' +
                           '        Sorting data\n' +
                           '    </dt>\n' +
                           '    <dd>\n' +
                           '        Simply by clicking the column header. This will fetch data from backend again. <em>Unfortunately not from\n' +
                           '        relation columns... yet.</em>\n' +
                           '    </dd>\n' +
                           '\n' +
                           '    <dt>\n' +
                           '        Live updates\n' +
                           '    </dt>\n' +
                           '    <dd>\n' +
                           '        GUI is automatically updated if changes are made to the data.\n' +
                           '    </dd>\n' +
                           '\n' +
                           '    <dt>\n' +
                           '        Navigation\n' +
                           '    </dt>\n' +
                           '    <dd>\n' +
                           '        Access to single book and author pages simply by clicking the book or author name.\n' +
                           '    </dd>\n' +
                           '</dl>\n' +
                           '\n' +
                           '<page-info-files data-files="{{files}}"></page-info-files>\n' +
                           '');
    }]);
})();

(function(module) {
    try {
        module = angular.module('frontend-templates');
    } catch (e) {
        module = angular.module('frontend-templates', []);
    }
    module.run(['$templateCache', function($templateCache) {
        $templateCache.put('/frontend/examples/book/list.html',
                           '<h3>\n' +
                           '    Books ({{itemCount}})\n' +
                           '\n' +
                           '    <div class="col-xs-6 pull-right list-search">\n' +
                           '        <a\n' +
                           '            data-ng-if="user.admin"\n' +
                           '            data-ui-sref="examples.book.add"\n' +
                           '            data-tooltip="Add new book"\n' +
                           '        ><i class="fa fa-plus-circle"></i></a>\n' +
                           '\n' +
                           '        <list-search\n' +
                           '            data-filters="filters"\n' +
                           '            data-options="itemsPerPageOptions"\n' +
                           '            data-items="itemsPerPage"\n' +
                           '        ></list-search>\n' +
                           '\n' +
                           '        <pagination class="pagination-sm"\n' +
                           '            data-total-items="itemCount"\n' +
                           '            data-ng-model="currentPage"\n' +
                           '            data-items-per-page="itemsPerPage"\n' +
                           '            data-max-size="10"\n' +
                           '            data-boundary-links="true"\n' +
                           '            data-rotate="false"\n' +
                           '        ></pagination>\n' +
                           '    </div>\n' +
                           '</h3>\n' +
                           '\n' +
                           '<table class="table">\n' +
                           '    <thead class="no-select">\n' +
                           '        <tr>\n' +
                           '            <th class="text-nowrap {{item.class}}"\n' +
                           '                data-ng-repeat="item in titleItems"\n' +
                           '            >\n' +
                           '                <a\n' +
                           '                    data-ng-show="item.column"\n' +
                           '                    data-ng-click="changeSort(item)"\n' +
                           '                    data-ng-bind-html="item.title"\n' +
                           '                ></a>\n' +
                           '                <span\n' +
                           '                    data-ng-show="!item.column"\n' +
                           '                    data-ng-bind-html="item.title"\n' +
                           '                ></span>\n' +
                           '\n' +
                           '                <i class="fa"\n' +
                           '                    data-ng-show="sort.column == item.column"\n' +
                           '                    data-ng-class="{\'fa-angle-down\': !sort.direction, \'fa-angle-up\': sort.direction}"\n' +
                           '                ></i>\n' +
                           '            </th>\n' +
                           '        </tr>\n' +
                           '    </thead>\n' +
                           '    <tbody>\n' +
                           '        <tr\n' +
                           '            data-ng-repeat="book in items"\n' +
                           '        >\n' +
                           '            <td class="col-md-9">\n' +
                           '                <a data-ui-sref="examples.book({id: book.id})">{{book.title}}</a>\n' +
                           '            </td>\n' +
                           '            <td class="col-md-2">\n' +
                           '                <a data-ui-sref="examples.author({id: getAuthor(book.author, \'id\')})"\n' +
                           '                   data-ng-show="getAuthor(book.author, \'id\', true) !== true"\n' +
                           '                >\n' +
                           '                    {{getAuthor(book.author, \'name\')}}\n' +
                           '                </a>\n' +
                           '            </td>\n' +
                           '            <td class="col-md-1 text-right">{{book.releaseDate | amDateFormat: \'YYYY\'}}</td>\n' +
                           '        </tr>\n' +
                           '\n' +
                           '        <tr data-ng-if="items.length === 0">\n' +
                           '            <td colspan="100%" class="text-center text-muted">\n' +
                           '                <em>no data founded...</em>\n' +
                           '            </td>\n' +
                           '        </tr>\n' +
                           '    </tbody>\n' +
                           '</table>\n' +
                           '\n' +
                           '<pagination class="pagination-sm pull-right"\n' +
                           '    data-total-items="itemCount"\n' +
                           '    data-ng-model="currentPage"\n' +
                           '    data-items-per-page="itemsPerPage"\n' +
                           '    data-max-size="10"\n' +
                           '    data-boundary-links="true"\n' +
                           '    data-rotate="false"\n' +
                           '></pagination>');
    }]);
})();

(function(module) {
    try {
        module = angular.module('frontend-templates');
    } catch (e) {
        module = angular.module('frontend-templates', []);
    }
    module.run(['$templateCache', function($templateCache) {
        $templateCache.put('/frontend/examples/chat/chat-info.html',
                           '<h4>General info</h4>\n' +
                           '\n' +
                           '<p>\n' +
                           '    This example demonstrates how to use sails.js and web sockets to pass updates\n' +
                           '    between clients automatically. This simple <em>chat</em> application is perfect\n' +
                           '    for this demonstration. All communications here are made via web sockets.\n' +
                           '</p>\n' +
                           '\n' +
                           '<h4>Functions in this example</h4>\n' +
                           '\n' +
                           '<dl class="dl-horizontal">\n' +
                           '    <dt>\n' +
                           '        Basic stuff\n' +
                           '    </dt>\n' +
                           '    <dd>\n' +
                           '        Enter / leave chat. Create new chat message. Message updates to all clients.\n' +
                           '    </dd>\n' +
                           '</dl>\n' +
                           '\n' +
                           '<page-info-files data-files="{{files}}"></page-info-files>\n' +
                           '');
    }]);
})();

(function(module) {
    try {
        module = angular.module('frontend-templates');
    } catch (e) {
        module = angular.module('frontend-templates', []);
    }
    module.run(['$templateCache', function($templateCache) {
        $templateCache.put('/frontend/examples/chat/chat.html',
                           '<div class="chat-enter"\n' +
                           '    data-ng-show="!message.nick"\n' +
                           '>\n' +
                           '    <h4>Enter a nick</h4>\n' +
                           '\n' +
                           '    <div class="input-group col-md-4">\n' +
                           '        <input id="nick" name="nick" class="form-control" type="text" placeholder="Enter a nickname"\n' +
                           '           data-ng-model="nick"\n' +
                           '           data-ui-keypress="{\'enter\': \'enterToChat($event)\'}"\n' +
                           '        />\n' +
                           '        <span class="input-group-btn">\n' +
                           '            <button class="btn btn-primary" type="button"\n' +
                           '                data-ng-click="enterToChat()"\n' +
                           '            >Enter to chat</button>\n' +
                           '        </span>\n' +
                           '    </div>\n' +
                           '</div>\n' +
                           '\n' +
                           '<div class="chat"\n' +
                           '    data-ng-show="message.nick"\n' +
                           '>\n' +
                           '    <div class="row">\n' +
                           '        <div id="messages" class="col-md-12 messages chat-screen">\n' +
                           '            <ul class="list-unstyled">\n' +
                           '                <li class="clearfix"\n' +
                           '                    data-ng-repeat="message in messages | orderBy: \'createdAt\'"\n' +
                           '                >\n' +
                           '                    <span class="pull-left time text-muted">\n' +
                           '                        <code>[{{message.createdAt | amDateFormat:\'YYYY-MM-DD HH:mm:ss\'}}]</code>\n' +
                           '                    </span>\n' +
                           '\n' +
                           '                    <span class="pull-left message">\n' +
                           '                        <span class="text-info">{{message.nick}}</span>\n' +
                           '                        <span data-ng-bind-html="message.message | linky : \'_blank\'"></span>\n' +
                           '                    </span>\n' +
                           '                </li>\n' +
                           '            </ul>\n' +
                           '        </div>\n' +
                           '    </div>\n' +
                           '\n' +
                           '    <div class="row">\n' +
                           '        <div class="col-md-12 input-group">\n' +
                           '            <div class="input-group-addon">\n' +
                           '                {{message.nick}}\n' +
                           '            </div>\n' +
                           '\n' +
                           '            <input id="message" name="message" class="form-control" type="text" placeholder="enter chat message"\n' +
                           '                data-ng-model="message.message"\n' +
                           '                data-ui-keypress="{\'enter\': \'postMessage($event)\'}"\n' +
                           '            />\n' +
                           '\n' +
                           '            <div class="input-group-btn">\n' +
                           '                <button class="btn btn-primary" type="button"\n' +
                           '                    data-ng-click="postMessage()"\n' +
                           '                >\n' +
                           '                    Send message\n' +
                           '                </button>\n' +
                           '\n' +
                           '                <button class="btn btn-danger" type="button"\n' +
                           '                    data-tooltip="Leave chat"\n' +
                           '                    data-ng-click="leaveChat()"\n' +
                           '                >\n' +
                           '                    <i class="fa fa-times"></i>\n' +
                           '                </button>\n' +
                           '            </div>\n' +
                           '        </div>\n' +
                           '    </div>\n' +
                           '</div>');
    }]);
})();

(function(module) {
    try {
        module = angular.module('frontend-templates');
    } catch (e) {
        module = angular.module('frontend-templates', []);
    }
    module.run(['$templateCache', function($templateCache) {
        $templateCache.put('/frontend/examples/messages/messages-info.html',
                           '<h4>General info</h4>\n' +
                           '\n' +
                           '<p>\n' +
                           '    This is an example page to demonstrate how this boilerplate handles errors with <em>$http</em> and\n' +
                           '    <em>$sailsSocket</em> requests. Note that this <em>magic</em> is done automatically via the error\n' +
                           '    interceptor so you don\'t have to do anything extra for error handling. The error handling is done\n' +
                           '    via the error interceptor that is attached to <em>$http</em> and <em>$sailsSocket</em> services.\n' +
                           '</p>\n' +
                           '\n' +
                           '<p>\n' +
                           '    This interceptor will catch <em>all</em> errors from <em>$http</em> and <em>$sailsSocket</em>\n' +
                           '    requests and show those to the user via the message service. Note that the message shown depends\n' +
                           '    on the actual error response from the backend.\n' +
                           '</p>\n' +
                           '\n' +
                           '<h4>Functions in this example</h4>\n' +
                           '\n' +
                           '<dl class="dl-horizontal">\n' +
                           '    <dt>\n' +
                           '        Custom messages\n' +
                           '    </dt>\n' +
                           '    <dd>\n' +
                           '        Simple example to trigger different types of messages: <em>info, success, warning</em> and <em>error</em> with\n' +
                           '        specified <em>title</em> and actual <em>message</em>.\n' +
                           '    </dd>\n' +
                           '\n' +
                           '    <dt>\n' +
                           '        $http / $sailsSocket\n' +
                           '    </dt>\n' +
                           '    <dd>\n' +
                           '        Examples to demonstrate invalid URL and not found record. These are handled automatically by <em>ErrorInterceptor</em>.\n' +
                           '    </dd>\n' +
                           '</dl>\n' +
                           '\n' +
                           '<page-info-files data-files="{{files}}"></page-info-files>\n' +
                           '');
    }]);
})();

(function(module) {
    try {
        module = angular.module('frontend-templates');
    } catch (e) {
        module = angular.module('frontend-templates', []);
    }
    module.run(['$templateCache', function($templateCache) {
        $templateCache.put('/frontend/examples/messages/messages.html',
                           '<h3>Messages</h3>\n' +
                           '\n' +
                           '<p>\n' +
                           '    This page demonstrates how you can use the <code>Message</code> service in your application.\n' +
                           '    This service is automatically hooked to <code>$http</code> and <code>$sailsSocket</code> errors.\n' +
                           '</p>\n' +
                           '\n' +
                           '<div class="row">\n' +
                           '    <div class="col-md-4">\n' +
                           '        <h5 class="col-md-offset-3">Message trigger from form data</h5>\n' +
                           '        <form name="customMessage" class="form-horizontal" role="form">\n' +
                           '            <div class="form-group">\n' +
                           '                <label for="title" class="col-md-3 control-label">Title</label>\n' +
                           '                <div class="col-md-9">\n' +
                           '                    <input id="title" name="title" type="text" class="form-control" placeholder="Enter title" required="required"\n' +
                           '                        data-ng-model="title"\n' +
                           '                    />\n' +
                           '                </div>\n' +
                           '            </div>\n' +
                           '            <div class="form-group">\n' +
                           '                <label for="message" class="col-md-3 control-label">Message</label>\n' +
                           '                <div class="col-md-9">\n' +
                           '                    <textarea id="message" name="message" class="form-control"\n' +
                           '                        data-ng-model="message"\n' +
                           '                    ></textarea>\n' +
                           '                </div>\n' +
                           '            </div>\n' +
                           '            <div class="form-group">\n' +
                           '                <label for="type" class="col-md-3 control-label">Type</label>\n' +
                           '                <div class="col-md-9">\n' +
                           '                    <select id="type" name="type"  class="form-control" required="required"\n' +
                           '                        data-ng-model="type"\n' +
                           '                        data-ng-options="messageType as messageType for messageType in messageTypes"\n' +
                           '                    ></select>\n' +
                           '                </div>\n' +
                           '            </div>\n' +
                           '            <div class="form-group">\n' +
                           '                <div class="col-md-9 col-md-offset-3">\n' +
                           '                    <button class="btn btn-primary"\n' +
                           '                        data-ng-disabled="!customMessage.$valid"\n' +
                           '                        data-ng-click="showMessage()"\n' +
                           '                    >Show message</button>\n' +
                           '                </div>\n' +
                           '            </div>\n' +
                           '        </form>\n' +
                           '    </div>\n' +
                           '    <div class="col-md-4">\n' +
                           '        <h5>Automatic message trigger via <code>$http</code></h5>\n' +
                           '\n' +
                           '        <div class="form-group">\n' +
                           '            <button class="btn btn-primary"\n' +
                           '                data-ng-click="makeInvalidHttpRequest(0)"\n' +
                           '            >Invalid URL</button>\n' +
                           '\n' +
                           '            <button class="btn btn-primary"\n' +
                           '                data-ng-click="makeInvalidHttpRequest(1)"\n' +
                           '            >Record not found</button>\n' +
                           '        </div>\n' +
                           '\n' +
                           '        <h5>Automatic message trigger via <code>$sailsSocket</code></h5>\n' +
                           '\n' +
                           '        <div class="form-group">\n' +
                           '            <button class="btn btn-primary"\n' +
                           '                data-ng-click="makeInvalidSailsSocketRequest(0)"\n' +
                           '            >Invalid URL</button>\n' +
                           '\n' +
                           '            <button class="btn btn-primary"\n' +
                           '                data-ng-click="makeInvalidSailsSocketRequest(1)"\n' +
                           '            >Record not found</button>\n' +
                           '        </div>\n' +
                           '    </div>\n' +
                           '</div>\n' +
                           '\n' +
                           '');
    }]);
})();

(function(module) {
    try {
        module = angular.module('frontend-templates');
    } catch (e) {
        module = angular.module('frontend-templates', []);
    }
    module.run(['$templateCache', function($templateCache) {
        $templateCache.put('/frontend/core/auth/login/login.html',
                           '\n' +
                           '<div class="form-login">\n' +
                           '    <form name="loginForm" method="post" novalidate="novalidate">\n' +
                           '        <h2 class="title">Please login</h2>\n' +
                           '\n' +
                           '        <div class="form-group"\n' +
                           '             data-show-errors\n' +
                           '        >\n' +
                           '            <input type="text" name="username" class="form-control username" placeholder="enter username or email" autofocus autocomplete="off" required="required"\n' +
                           '                data-focus-on="username"\n' +
                           '                data-ng-model="credentials.identifier"\n' +
                           '            />\n' +
                           '        </div>\n' +
                           '\n' +
                           '        <div class="form-group"\n' +
                           '            data-show-errors\n' +
                           '        >\n' +
                           '            <input type="password" name="password" class="form-control password" placeholder="enter password" required="required"\n' +
                           '                data-ng-model="credentials.password"\n' +
                           '            />\n' +
                           '        </div>\n' +
                           '\n' +
                           '        <button class="btn btn-primary btn-block"\n' +
                           '            data-ng-click="login()"\n' +
                           '            data-ng-disabled="!loginForm.$valid"\n' +
                           '        >Login</button>\n' +
                           '    </form>\n' +
                           '</div>\n' +
                           '');
    }]);
})();

(function(module) {
    try {
        module = angular.module('frontend-templates');
    } catch (e) {
        module = angular.module('frontend-templates', []);
    }
    module.run(['$templateCache', function($templateCache) {
        $templateCache.put('/frontend/core/directives/partials/ListSearch.html',
                           '<div class="list-search-filters">\n' +
                           '    <form class="form-inline" role="form">\n' +
                           '        <div class="form-group">\n' +
                           '            <div class="input-group" dropdown>\n' +
                           '                <input class="form-control input-sm col-sm-10" type="text" placeholder="search filter"\n' +
                           '                    data-ng-model="filters.searchWord"\n' +
                           '                />\n' +
                           '\n' +
                           '                <ul class="dropdown-menu pull-right dropdown-menu-arrow" role="menu">\n' +
                           '                    <li class="title">Columns where filter affects</li>\n' +
                           '                    <li class="divider"></li>\n' +
                           '                    <li data-ng-repeat="column in filters.columns | filter: inSearch">\n' +
                           '                        <a href="#" data-ng-click="column.inSearch = !column.inSearch; $event.preventDefault(); $event.stopPropagation();">\n' +
                           '                            <i class="fa fa-fw"\n' +
                           '                                data-ng-class="{\'fa-check\': column.inSearch}"\n' +
                           '                            ></i>\n' +
                           '\n' +
                           '                            <span\n' +
                           '                                data-ng-if="column.titleSearch"\n' +
                           '                                data-ng-bind="column.titleSearch"\n' +
                           '                            ></span>\n' +
                           '\n' +
                           '                            <span\n' +
                           '                                data-ng-if="!column.titleSearch"\n' +
                           '                                data-ng-bind="column.title"\n' +
                           '                            ></span>\n' +
                           '                        </a>\n' +
                           '                    </li>\n' +
                           '                </ul>\n' +
                           '\n' +
                           '                <span class="input-group-addon search dropdown-toggle"\n' +
                           '                    data-tooltip="Click to select columns where search filter affects."\n' +
                           '                >\n' +
                           '                    <i class="fa fa-search text-info"></i>\n' +
                           '                </span>\n' +
                           '            </div>\n' +
                           '\n' +
                           '            <select class="form-control input-sm"\n' +
                           '                data-ng-model="items"\n' +
                           '                data-ng-options="page for page in options"\n' +
                           '            >\n' +
                           '            </select>\n' +
                           '        </div>\n' +
                           '    </form>\n' +
                           '</div>\n' +
                           '\n' +
                           '');
    }]);
})();

(function(module) {
    try {
        module = angular.module('frontend-templates');
    } catch (e) {
        module = angular.module('frontend-templates', []);
    }
    module.run(['$templateCache', function($templateCache) {
        $templateCache.put('/frontend/core/error/partials/error.html',
                           '<h3>Error occurred</h3>\n' +
                           '\n' +
                           '<p>\n' +
                           '    Damn gerbils have stopped running again! Someone has been dispatched to poke them with a sharp stick.\n' +
                           '</p>\n' +
                           '\n' +
                           '<!--\n' +
                           'TODO:\n' +
                           ' 1) show actual error somehow...\n' +
                           ' 2) show stack trace?\n' +
                           '-->\n' +
                           '\n' +
                           '<p data-ng-show="error.fromState.name">\n' +
                           '    <a href="#"\n' +
                           '        data-ng-click="goToPrevious()"\n' +
                           '    >\n' +
                           '        Back to previous page\n' +
                           '    </a>\n' +
                           '</p>');
    }]);
})();

(function(module) {
    try {
        module = angular.module('frontend-templates');
    } catch (e) {
        module = angular.module('frontend-templates', []);
    }
    module.run(['$templateCache', function($templateCache) {
        $templateCache.put('/frontend/core/layout/partials/files.html',
                           '<div>\n' +
                           '    <h4>Files used in this example</h4>\n' +
                           '\n' +
                           '    <p>\n' +
                           '        Below you can see all the actual <em>backend / frontend</em> files which are used to make this example page work.\n' +
                           '    </p>\n' +
                           '\n' +
                           '    <div class="row">\n' +
                           '        <div class="col-xs-3"\n' +
                           '            data-ng-repeat="(title, items) in filesJson"\n' +
                           '        >\n' +
                           '            <h5 data-ng-bind-html="title"></h5>\n' +
                           '\n' +
                           '            <ul class="list-unstyled">\n' +
                           '                <li data-ng-repeat="item in items">\n' +
                           '                    <a href="{{item.url}}" target="_blank"\n' +
                           '                        data-tooltip-html-unsafe="{{getTooltip(item)}}"\n' +
                           '                        data-tooltip-placement="left"\n' +
                           '                        data-ng-bind-html="item.title"\n' +
                           '                    ></a>\n' +
                           '                </li>\n' +
                           '            </ul>\n' +
                           '        </div>\n' +
                           '    </div>\n' +
                           '</div>\n' +
                           '');
    }]);
})();

(function(module) {
    try {
        module = angular.module('frontend-templates');
    } catch (e) {
        module = angular.module('frontend-templates', []);
    }
    module.run(['$templateCache', function($templateCache) {
        $templateCache.put('/frontend/core/layout/partials/footer.html',
                           '<footer>\n' +
                           '    <div class="navbar navbar-default navbar-fixed-bottom">\n' +
                           '        <div class="container">\n' +
                           '            <ul class="nav navbar-nav">\n' +
                           '                <li>\n' +
                           '                    <a href="https://github.com/tarlepp/angular-sailsjs-boilerplate" target="_blank">\n' +
                           '                        <i class="fa fa-github"></i>GitHub\n' +
                           '                    </a>\n' +
                           '                </li>\n' +
                           '                <li>\n' +
                           '                    <a href="https://github.com/tarlepp/angular-sailsjs-boilerplate/issues" target="_blank">\n' +
                           '                        <i class="fa fa-bug"></i>Issues\n' +
                           '                    </a>\n' +
                           '                </li>\n' +
                           '                <li>\n' +
                           '                    <a href="https://github.com/tarlepp/" target="_blank">\n' +
                           '                        <i class="fa fa-user"></i>Tarmo Leppänen\n' +
                           '                    </a>\n' +
                           '                </li>\n' +
                           '            </ul>\n' +
                           '        </div>\n' +
                           '    </div>\n' +
                           '</footer>');
    }]);
})();

(function(module) {
    try {
        module = angular.module('frontend-templates');
    } catch (e) {
        module = angular.module('frontend-templates', []);
    }
    module.run(['$templateCache', function($templateCache) {
        $templateCache.put('/frontend/core/layout/partials/header.html',
                           '<header>\n' +
                           '    <div class="navbar navbar-default navbar-fixed-top">\n' +
                           '        <div class="container">\n' +
                           '            <div class="navbar-header">\n' +
                           '                <a href="/" class="navbar-brand">Boilerplate</a>\n' +
                           '                <button class="navbar-toggle" type="button" data-toggle="collapse" data-target="#navbar-main">\n' +
                           '                    <span class="icon-bar"></span>\n' +
                           '                    <span class="icon-bar"></span>\n' +
                           '                    <span class="icon-bar"></span>\n' +
                           '                </button>\n' +
                           '            </div>\n' +
                           '\n' +
                           '\n' +
                           '            <ul class="nav navbar-nav">\n' +
                           '                <li class="{{item.class}}"\n' +
                           '                    data-ng-repeat="item in navigationItems"\n' +
                           '                    data-ng-show="auth.authorize(item.access)"\n' +
                           '                    data-ng-class="{\'not-active\': isNotActive(item), \'active\': isActive(item)}"\n' +
                           '                    data-ui-sref-active="active"\n' +
                           '                >\n' +
                           '                    <a href="#"\n' +
                           '                        data-ui-sref="{{item.state}}"\n' +
                           '                    >{{item.title}}</a>\n' +
                           '                </li>\n' +
                           '\n' +
                           '                <li class="pull-right"\n' +
                           '                    data-ui-sref-active="active"\n' +
                           '                    data-ng-show="!auth.isAuthenticated()"\n' +
                           '                >\n' +
                           '                    <a href="#" data-ui-sref="auth.login">Login</a>\n' +
                           '                </li>\n' +
                           '\n' +
                           '                <li class="pull-right"\n' +
                           '                    data-ng-show="auth.isAuthenticated()"\n' +
                           '                >\n' +
                           '                    <a href="#" data-ng-click="logout()">Logout</a>\n' +
                           '                </li>\n' +
                           '\n' +
                           '                <li class="pull-right"\n' +
                           '                    data-ui-sref-active="active"\n' +
                           '                    data-ng-show="auth.isAuthenticated()"\n' +
                           '                >\n' +
                           '                    <a href="#" data-ui-sref="profile.edit">{{user().username}}</a>\n' +
                           '                </li>\n' +
                           '            </ul>\n' +
                           '        </div>\n' +
                           '    </div>\n' +
                           '</header>');
    }]);
})();

(function(module) {
    try {
        module = angular.module('frontend-templates');
    } catch (e) {
        module = angular.module('frontend-templates', []);
    }
    module.run(['$templateCache', function($templateCache) {
        $templateCache.put('/frontend/core/layout/partials/help.html',
                           '<div class="modal-header">\n' +
                           '    <button type="button" class="close"\n' +
                           '        data-dismiss="modal"\n' +
                           '        data-ng-click="dismiss()"\n' +
                           '    >\n' +
                           '        <span aria-hidden="true">&times;</span>\n' +
                           '        <span class="sr-only">Close</span>\n' +
                           '    </button>\n' +
                           '\n' +
                           '    <h3 class="modal-title">{{title}}</h3>\n' +
                           '</div>\n' +
                           '<div class="modal-body modal-help">\n' +
                           '    <div data-ng-include="template"></div>\n' +
                           '</div>\n' +
                           '<div class="modal-footer">\n' +
                           '    <button class="btn btn-primary"\n' +
                           '        data-ng-click="dismiss()"\n' +
                           '    >Close</button>\n' +
                           '</div>');
    }]);
})();

(function(module) {
    try {
        module = angular.module('frontend-templates');
    } catch (e) {
        module = angular.module('frontend-templates', []);
    }
    module.run(['$templateCache', function($templateCache) {
        $templateCache.put('/frontend/core/layout/partials/navigation.html',
                           '<ul class="nav nav-tabs">\n' +
                           '    <li\n' +
                           '        data-ng-repeat="item in navigationItems"\n' +
                           '        data-ui-sref-active="active"\n' +
                           '    >\n' +
                           '        <a\n' +
                           '            data-ng-if="item.state"\n' +
                           '            data-ui-sref="{{item.state}}">\n' +
                           '            {{item.title}}\n' +
                           '        </a>\n' +
                           '\n' +
                           '        <a style="text-decoration: line-through;"\n' +
                           '            data-ng-if="!item.state"\n' +
                           '        >\n' +
                           '            {{item.title}}\n' +
                           '        </a>\n' +
                           '    </li>\n' +
                           '\n' +
                           '    <li class="pull-right">\n' +
                           '        <a href="#" class="help"\n' +
                           '            data-ng-click="openInformation()"\n' +
                           '        >\n' +
                           '            More information about this GUI\n' +
                           '            <i class="fa fa-info-circle"></i>\n' +
                           '        </a>\n' +
                           '    </li>\n' +
                           '</ul>\n' +
                           '');
    }]);
})();
